package pub.cleangao.mybatis.cleavage;



public interface Cleavage {

    /**
     * 生成新的表名
     *
     * @param originTableName 原始表名参考(无前后缀)
     * @param paramVal        运算新表名所需参数
     * @return 返回新的表名
     */
    String newTableName(String originTableName, Object... paramVal);


    /**
     * 生成新的表名
     *
     * @param originDatabaseName 原始表名参考(无前后缀)
     * @param paramVal           运算新数据库名所需参数
     * @return 返回新的数据库名
     */
    String newDatabaseName(String originDatabaseName, Object... paramVal);


    /**
     * 生成数据源标识
     *
     * @param originDatabaseName 原始表名参考(无前后缀)
     * @param paramVal           运算新数据库名所需参数
     * @return 返回新的数据源标识
     */
    String newDataSourceKey(String originDatabaseName, Object... paramVal);

}
